// // WebSocketServer.js

// // 引入 ws 模块
// const WebSocket = require('ws');

// // 创建 WebSocket 服务器
// const wss = new WebSocket.Server({ port: 8080 });
// console.log('服务器启动！ WebSocket ws://localhost:8080 启动');

// // 存储所有客户端信息
// const clients = new Map();



// // 监听客户端连接
// wss.on('connection', function connection(ws, request) {
//     // 获取客户端IP和端口
//     const clientIP = request.socket.remoteAddress;
//     const clientPort = request.socket.remotePort;
//     const clientId = `${clientIP}:${clientPort}`;

//     // 为每个客户端生成唯一ID
//     const uniqueId = generateClientId();

//     // 存储客户端信息
//     clients.set(ws, {
//         id: uniqueId,
//         ip: clientIP,
//         port: clientPort,
//         connectTime: new Date()
//     });

//     console.log(`客户端连接成功！ID: ${uniqueId}, 地址: ${clientId}`);

//     // 发送欢迎消息（包含客户端ID）
//     ws.send(`欢迎连接到服务器！你的ID: ${uniqueId}`);

//     // 监听客户端消息
//     ws.on('message', function incoming(message) {
//         // 打印客户端发来的消息
//         const messageStr = message.toString();
//         console.log('收到客户端消息:', messageStr);

//         // 回复客户端（回声）
//         ws.send(`服务器再次转回消息：${messageStr}`);
//     });

//     // 监听连接关闭
//     ws.on('close', function () {
//         const clientInfo = clients.get(ws);
//         console.log(`客户端 ${clientInfo.id} 断开连接`);
//         clients.delete(ws); // 从Map中移除
//     });

//     // 监听错误
//     ws.on('error', function (error) {
//         const clientInfo = clients.get(ws);
//         console.error(`⚠️ 客户端 ${clientInfo.id} 错误:`, error);
//     });
// });

// /**
//  * 生成唯一客户端ID
//  */
// function generateClientId() {
//     return 'client_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
// }

// // 关闭服务器
// function closeServer() {
//     console.log('\n正在关闭服务器...');

//     // 关闭所有客户端连接
//     wss.clients.forEach(client => {
//         if (client.readyState === WebSocket.OPEN) {
//             client.close(1001, '服务器正在关闭');
//         }
//     });

//     // 关闭服务器
//     wss.close(() => {
//         console.log('服务器已安全关闭');
//         process.exit(0);
//     });

//     // 如果5秒后还没关闭，强制退出
//     setTimeout(() => {
//         console.log('强制关闭服务器');
//         process.exit(1);
//     }, 5000);
// }

// // 监听系统信号（Ctrl+C）
// process.on('SIGINT', closeServer);
// process.on('SIGTERM', closeServer);

